.section .os_hal.vector, "ax"  @让GCC把下面指令放在一个叫 .os_hal.vector 的节中，以便链接器处理
.code  32                      @让GCC生成32位的ARMCPU指令
.align 0                       @0字节对齐

.extern int_vectors_undefined
.extern int_vectors_swi
.extern int_vectors_preincabort
.extern int_vectors_dataabort
.extern int_vectors_bugdie
.extern int_vectors_irq
.extern int_vectors_frq
.extern _start
.global _int_vectors

_int_vectors:
    ldr pc, ivt_restart_l
    ldr pc, ivt_undefined_l
    ldr pc, ivt_swi_l
    ldr pc, ivt_preincabort_l
    ldr pc, ivt_dataabort_l  
    ldr pc, ivt_bugdie_l
    ldr pc, ivt_irq_l
    ldr pc, ivt_frq_l

.align 4                       @4字节对齐

ivt_restart_l:       .word  _start                      @init.S 中, 初始化向量
ivt_undefined_l:     .word  int_vectors_undefined       @异常向量
ivt_swi_l:           .word  int_vectors_swi             @陷入向量
ivt_preincabort_l:   .word  int_vectors_preincabort     @异常向量
ivt_dataabort_l:     .word  int_vectors_dataabort       @异常向量
ivt_bugdie_l:        .word  int_vectors_bugdie          @保留向量
ivt_irq_l:           .word  int_vectors_irq             @中断向量
ivt_frq_l:           .word  int_vectors_frq             @快速中断向量 (有链接器填入 int_vectors_frq 实际地址)

.end